// pages/teamMemberManagePage/teamMemberManagePage.js
/*
  成员管理模块

  登录 
  ——> 如果是普通用户
  1. 获取team成员列表
  2. 分配权限，查看 和 编辑权限
  3. 邀请新成员进入自己管理的团队
  4. 删除自己管理的团队下的成员
  ——> 如果是领导
  1. 获取所有的team,所有的地图，不过操作不了

  // Bug 报告 2020.10.23
  // 1. 新用户的manageTeamList和joinTeamList是什么？null?
  // 2. 拉新用户进团队会报错
*/
import {
  request
} from '../../request/index.js';
var app = getApp()
Page({

  /**
   * 页面的初始数据
   */
  data: {
    // 当前团队Id
    teamId: '',
    memberList: [],
    array: ['仅可查看', '可编辑'],
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: async function (options) {
    console.log('当前团队：',options.teamId)
    this.setData({
      teamId: options.teamId
    })
    let res = await request({
      url: '/teamuser/getJoinTeamUsersList/' + options.teamId
    })
    this.setData({
      memberList: res.data.data
    })
    if (this.data.memberList) {
      // 获取用户权限
      this.data.memberList.map(v => {
        if (v.joinTeamList.power == 1) {
          v.right = '仅可查看'
        } else if (v.joinTeamList.power == 2) {
          v.right = '可编辑'
        }
      })
      this.setData({
        memberList: this.data.memberList
      })
    } else {
      console.log('当前团队无用户')
    }
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {

  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  },
  async editRight(e) {
    this.setData({
      index: e.detail.value
    })
    // 先改后端，若成功则改前端
    let sendData = {}
    sendData['teamId'] = this.data.teamId;
    sendData['power'] = (parseInt(e.detail.value) + 1).toString();
    let res = await request({
      url: '/teamuser/updateUsersTeamPower/' + e.currentTarget.dataset.id,
      method: 'PUT',
      data: sendData
    })
    this.data.memberList.map(v => {
      if (v._id == e.currentTarget.dataset.id) {
        v.right = this.data.array[e.detail.value]
        if (v.right == "仅可查看") {
          v.joinTeamList.power = 1
        } else if (v.right == "可编辑") {
          v.joinTeamList.power = 2
        }
      }
    })
    console.log('当前团队成员：',this.data.memberList)
    this.setData({
      memberList: this.data.memberList
    })
    //console.log(this.data.memberList)
  },
  add_member() {
    // 编辑图层
    this.setData({
      showModal: true
    })
  },
  close_mask: function () {
    this.setData({
      showModal: false
    })
  },
  // 输入字段
  inputModify: function (e) {
    this.setData({
      addUserName: e.detail.value
    })
  },
  //隐藏对话框
  hideModal: function () {
    // 隐藏遮罩层
    var animation = wx.createAnimation({
      duration: 200,
      timingFunction: "linear",
      delay: 0
    })
    this.animation = animation
    animation.translateY(300).step()
    this.setData({
      animationData: animation.export(),
    })
    setTimeout(function () {
      animation.translateY(0).step()
      this.setData({
        animationData: animation.export(),
        showModalStatus: false
      })
    }.bind(this), 200)
  },
  async addMemberConfirm() {
    let res = await request({
      url: '/teamuser/joinTeam?teamId=' + this.data.teamId + '&userName=' + this.data.addUserName,
      method: 'POST'
    })
    // 异常处理

    this.setData({
      showModal: false
    })
    // 重新获取数据
    let res2 = await request({
      url: '/teamuser/getJoinTeamUsersList/' + this.data.teamId
    })
    this.setData({
      memberList: res2.data.data
    })
    // 获取用户权限
    this.data.memberList.map(v => {
      if (v.joinTeamList.power == 1) {
        v.right = '仅可查看'
      } else if (v.joinTeamList.power == 2) {
        v.right = '可编辑'
      }
    })
    this.setData({
      memberList: this.data.memberList
    })
  },
  async delete_member(e) {
    let userChoice = await wx.showModal({
      title: '提示',
      content: '确认要删除该用户？'
    })
    if (userChoice.confirm) {
      let res = await request({
        url: '/teamuser/removeUserFromTeam?teamId=' + this.data.teamId + '&userId=' + e.currentTarget.dataset.id,
        method: 'DELETE'
      })
      // 重新获取数据
      let res2 = await request({
        url: '/teamuser/getJoinTeamUsersList/' + this.data.teamId
      })
      this.setData({
        memberList: res2.data.data
      })
      // 获取用户权限
      this.data.memberList.map(v => {
        if (v.joinTeamList.power == 1) {
          v.right = '仅可查看'
        } else if (v.joinTeamList.power == 2) {
          v.right = '可编辑'
        }
      })
      this.setData({
        memberList: this.data.memberList
      })
    } else {

    }
  }
})